﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Romeo.Data
{
    public abstract class Evaluator : EvaluationStatistics
    {
        /// <summary>
        ///     Evaluate the score of a position according to
        ///     the "computer" player.
        /// </summary>
        /// <param name="aBoard">
        ///     The board to evaluate
        /// </param>
        /// <param name="aMinScore">
        ///     The minimum score to report. The evaluation function may
        ///     abort evaluation as soon as the score drops below that value.
        /// </param>
        /// <returns>
        ///     The score of the position for the computer player. 
        ///     A high score indicates a good position, a low score 
        ///     a bad postion, and 0 a tie.
        /// </returns>

        public abstract int Evaluate (Board aBoard, int aMinScore);
    }
}
